/**
 * @author : dormi330
 * @date : 2019-08-13
 * description : 文件描述
 */

import pkg1.BaseBar;
import pkg1.BaseFoo;
import pkg2.Foo1;

public class Bar1 extends BaseBar {
    public Bar1(BaseFoo foo) {
        super(foo);
    }

    @Override
    protected String hi() {
        return super.hi() + ",gogogo";
    }

    /**
     * 虽然 Bar1 不能 access Foo1的 hi()
     * 但是因为 BaseBar 能够 access BaseFoo::hi
     * 所以 bar1.hi()能够调用成功
     */
    public static void main(String[] args) {
        Foo1 foo1 = new Foo1();
//        foo1.hi(); // compile error

        Bar1 bar1 = new Bar1(foo1);
        System.out.println(bar1.hi());
    }
}
